package com.leetcode;

import java.util.HashMap;
import java.util.Map;

public class L0013 {
    public static void main(String[] args) {
        String s= "MCMXCIV";
        char[] chars = s.toCharArray();
        int sum=0;
        Map<Character,Integer> map=new HashMap<>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        int i=0;
        while (i<chars.length-1){
            if (map.get(chars[i])>=map.get(chars[i+1])){
                sum+=map.get(chars[i]);
                i++;
            }else {
                sum+=map.get(chars[i+1])-map.get(chars[i]);
                i+=2;
            }
        }
        if (i==s.length()-1)
            sum+=map.get(chars[i]);

        System.out.println(sum);
    }
    public int romanToInt(String s) {
        int sum = 0;
        int preNum = getValue(s.charAt(0));
        for(int i = 1;i < s.length(); i ++) {
            int num = getValue(s.charAt(i));
            if(preNum < num) {
                sum -= preNum;
            } else {
                sum += preNum;
            }
            preNum = num;
        }
        sum += preNum;
        return sum;
    }
    private int getValue(char ch) {
        switch(ch) {
            case 'I': return 1;
            case 'V': return 5;
            case 'X': return 10;
            case 'L': return 50;
            case 'C': return 100;
            case 'D': return 500;
            case 'M': return 1000;
            default: return 0;
        }
    }

}
